#ifndef XENGINE_GUIFRAME_H
#define XENGINE_GUIFRAME_H

#include "Camera.h"

#define WIN_WIDTH 800
#define WIN_HEIGHT 600

namespace GuiFrame
{

	class Windows_Control
	{
	public:

		Camera camera;

		float deltaTime;
		float lastFrame;

		//input
		static void framebuffer_size_callback(GLFWwindow* window, int width, int height);
		static void mouse_callback(GLFWwindow *window, double xposIn, double yposIn);
		void processInput(GLFWwindow* w);

		inline static Windows_Control* getController();

		static void Controller_free();

	private:
		Windows_Control();
		static Windows_Control* controller;
		float lastX;
		float lastY;
		bool firstMouse;

		//输入状态
		unsigned int mouse_catch;
		unsigned int keyboard_catch;
	};


//glfw
    GLFWwindow* Create_Glfw_Window();

//imgui
    void Init_ImGui(GLFWwindow* pWindow);
    void Render_ImGui();
}

#endif //XENGINE_GUIFRAME_H
